package com.qf.automation.file.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import com.qf.automation.file.config.AlibabaOSSConfig;

import java.io.File;

public class AlibabaOssUtils {
    private static OSS ossClient=new OSSClientBuilder().build("http://"+AlibabaOSSConfig.endpoint,AlibabaOSSConfig.accessKey,AlibabaOSSConfig.accessSecretKey);
//    获取url地址
    public static String getUrl(String fileName){
        String uploadUrl="https://"+ AlibabaOSSConfig.bucketName+"."+AlibabaOSSConfig.endpoint+"/"+fileName;
        return uploadUrl;
    }



    public static String uploadFile(String fileName,File file) {
        // Endpoint以杭州为例，其它Region请按实际情况填写。
//        String endpoint = "https://oss-cn-beijing.aliyuncs.com";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        //主流的第三方服务几乎都需要两个东西，一个是key，一个是secrekey
//        String accessKeyId = "LTAI5tJBLWU7LB2MuGdsWEUP";
//        String accessKeySecret = "p7ShseXvgkBwPXsuIrrnskZTZpkv8g";

        // 创建OSSClient实例。

        // 填写字符串。
//        String content = "Hello OSS";

         // 创建PutObjectRequest对象。
         // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
        PutObjectRequest putObjectRequest = new PutObjectRequest("huangyaqiang", fileName,file );

        // 如果需要上传时设置存储类型和访问权限，请参考以下示例代码。
        // ObjectMetadata metadata = new ObjectMetadata();
        // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
        // metadata.setObjectAcl(CannedAccessControlList.Private);
        // putObjectRequest.setMetadata(metadata);

        // 上传字符串。
//        huangyaqiang.oss-cn-beijing.aliyuncs.com/4.jpg
        PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
        System.out.println(putObjectResult);

        return getUrl(fileName);
    }
    public void stopAlibabaOSSService(){
        ossClient.shutdown();
    }

//    public static void main(String[] args) {
//        String s = uploadFile("1.jpg", new File("C:\\Users\\67517\\Desktop\\1.jpg"));
//        System.out.println(s);
//    }
}